package com.example.springboot.utils;

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.example.springboot.entity.RaceExcelBean;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.ArrayList;
import java.util.List;

public class ExcelUtil {
    private final static Logger log = LoggerFactory.getLogger("ExcelUtil");


    public static List<RaceExcelBean> readExcel(String fileName) {
        List<RaceExcelBean> insurants = new ArrayList<>();
        //使用EasyExcel表格方法读取数据。
        //read方法里三个参数 文件名 模板类 一个解析监听
        //注意：监听里面的方法是需要我们重写的。
        EasyExcel.read(fileName, RaceExcelBean.class, new AnalysisEventListener<RaceExcelBean>() {
            //解析一行运行一次此方法。
            @Override
            public void invoke(RaceExcelBean raceExcelBean, AnalysisContext analysisContext) {
                if (!StringUtil.isBlank(raceExcelBean.getPeoName())) {
                    insurants.add(raceExcelBean);
                }
            }


            //解析所有数据完成，运行此方法。
            @Override
            public void doAfterAllAnalysed(AnalysisContext analysisContext) {
                log.info("解析的数据为:" + insurants);
            }
        }).sheet("数据表格").headRowNumber(0).doRead();
        return insurants;
    }

    public static void main(String[] args) {
        readExcel("C:\\Users\\E5\\Desktop\\团体投保表格.xlsx");
    }

}
